package csdn.chouxiang.li01;

public abstract class Animal {

    //抽象类中可以包含成员属性和成员方法
    public int age;

    public void show(){
        System.out.println(age);
    }
    @Override
    public String toString() {
        return "Animal [age=" + age + "]";
    }

    //抽象类中是否能有构造器？
    //有且必须要写（如果子类需要调用的话）
    //有,如果没有构造器则无法创建子类对象
    public Animal(){}
    public Animal(int age){
        this.age=age;
    }


    //忽略属性
    //行为
    //父类中的方法功能是不明确的
    //不明确的方法就不要写内容
    //实际使用中，本身也不会创建动物类的对象
    //所以可以定义为抽象方法
    //因为类中有抽象方法，所以必须声明为抽象类
    public abstract void eat();//没有具体实现，不需要写方法体{}

    public abstract void sleep();
}
